]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
iconGrid: Fix animation glitch
authorFlorian Müllner <fmuellner@gnome.org>
Tue, 18 Jun 2019 18:50:42 +0000 (20:50 +0200)
committerMarco Trevisan <mail@3v1n0.net>
Tue, 18 Jun 2019 22:03:34 +0000 (22:03 +0000)
Since commit 520cea93941b, the opacity of icon grid children is used
both to skip children outside the current viewport and to hide the
real icons while animating icon clones.

As a result, a grid animation during an animation now ends up showing the
icons that are being animated. Avoid that glitch by leaving children's
opacity alone when there's an ongoing animation.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/582

js/ui/iconGrid.js

index d428897a9e5105a4af73b2e5bc894720328cc71a..a6774edb1907f47fdec96772a986c0a76fdf20e4 100644 (file)
@@ -322,6 +322,7 @@ var IconGrid = GObject.registerClass({
                 leftEmptySpace = availWidth - usedWidth;
         }
 
+        let animating = this._clonesAnimating.length > 0;
         let x = box.x1 + leftEmptySpace + this.leftPadding;
         let y = box.y1 + this.topPadding;
         let columnIndex = 0;
@@ -333,7 +334,8 @@ var IconGrid = GObject.registerClass({
                 this._fillParent && childBox.y2 > availHeight - this.bottomPadding) {
                 children[i].opacity = 0;
             } else {
-                children[i].opacity = 255;
+                if (!animating)
+                    children[i].opacity = 255;
                 children[i].allocate(childBox, flags);
             }